package cn.tedu.oop2;
/*本类用于面向抽象编程的推导*/
public class DesignTeacher {
    public static void main(String[] args) {
        CGBTeaher cgbTeaher = new CGBTeaher();
        cgbTeaher.name="paopao";//可以直接通过对象.赋值,直接赋值
        //String name = cgbTeaher.name;
        System.out.println(cgbTeaher.name);
        System.out.println(cgbTeaher.id);
    }
}
//3.抽取共性,向上形成父类
/*abstract class Teacher{
    String name;
    int id;
    public abstract void ready();
    public abstract void teach();
}*/

abstract class Teacher{
    String name;
    int id;
    //public abstract void ready();
    //public abstract void teach();
    public abstract void ready();/*{
        System.out.println("正在备课");
    }*/
    //@Override
    public abstract void teach();/*{
        System.out.println("正在讲课");
    }*/
}

//1.创建培优CGB老师类
//业务:主打互联网架构与微服务
class CGBTeaher extends Teacher{
    /*String name;
    int id;*/
    @Override
    public void ready(){
        //System.out.println("正在备课:");
        System.out.println("正在备课:互联网架构与微服务");
    }
    @Override
    public void teach(){
        //System.out.println("正在讲课");
        System.out.println("正在讲课:互联网架构与微服务");
    }
}
//2.创建高手加薪班老师类
//主打:基础加强 框架加强 高新技术
class ACTTeacher extends Teacher{
    /*String name;
    int id;*/  //父类的属性子类可以继承,再新对象里面可以继承和赋值
    @Override
    public void ready(){
        //System.out.println("正在备课");
        System.out.println("正在备课:基础加强 框架加强 高新技术");
    }
    @Override
    public void teach(){
        //System.out.println("正在讲课");
        System.out.println("正在讲课:基础加强 框架加强 高新技术");
    }
}

//创建抽象父类的子实现类SCDTeacher
//这是一个抽象子类,只实现抽象父类中的一个抽象方法
abstract class SCDTeacher extends Teacher{
    @Override
    public void ready() {
        System.out.println("正在研发中...");
    }
}

